package com.zyf.lj.service;

import com.zyf.lj.entity.Application;

import java.util.List;

/**
 * 报名申请服务接口
 */
public interface ApplicationService {
    
    /**
     * 提交报名申请
     * @param application 报名申请对象
     * @return 是否提交成功
     */
    boolean submitApplication(Application application);
    
    /**
     * 根据ID查询报名申请
     * @param id 报名申请ID
     * @return 报名申请对象
     */
    Application getApplicationById(Integer id);
    
    /**
     * 查询所有报名申请
     * @return 报名申请列表
     */
    List<Application> getAllApplications();
    
    /**
     * 根据状态查询报名申请
     * @param status 状态
     * @return 报名申请列表
     */
    List<Application> getApplicationsByStatus(Integer status);
    
    /**
     * 根据身份证号查询报名申请
     * @param idCard 身份证号
     * @return 报名申请列表
     */
    List<Application> getApplicationsByIdCard(String idCard);
    
    /**
     * 根据手机号查询报名申请
     * @param phone 手机号
     * @return 报名申请列表
     */
    List<Application> getApplicationsByPhone(String phone);
    
    /**
     * 根据学院ID查询报名申请
     * @param collegeId 学院ID
     * @return 报名申请列表
     */
    List<Application> getApplicationsByCollegeId(Integer collegeId);
    
    /**
     * 根据专业ID查询报名申请
     * @param majorId 专业ID
     * @return 报名申请列表
     */
    List<Application> getApplicationsByMajorId(Integer majorId);
    
    /**
     * 更新报名申请
     * @param application 报名申请对象
     * @return 是否更新成功
     */
    boolean updateApplication(Application application);
    
    /**
     * 更新申请状态
     * @param id 申请ID
     * @param status 状态
     * @param handler 处理人
     * @param result 处理结果
     * @return 是否更新成功
     */
    boolean updateApplicationStatus(Integer id, Integer status, String handler, String result);
    
    /**
     * 删除报名申请
     * @param id 报名申请ID
     * @return 是否删除成功
     */
    boolean deleteApplication(Integer id);
} 